package listnode;

import listnode.data.GenerateRandomListNode;
import listnode.data.ListNode;


/**
 * 反转链表
 *
 * 迭代
 */
public class ReverseList {


    public ListNode reverseList(ListNode head) {
        ListNode pre = null;
        ListNode cur = head;
        ListNode next = null;

        while (cur != null) {
            next = cur.next;
            cur.next = pre;
            pre = cur;
            cur = next;
        }
        return pre;
    }


    public static void main(String[] args) {
        System.out.println("Hello and welcome!");
        ReverseList s = new ReverseList();

        ListNode l = GenerateRandomListNode.generateAcyclicList(10, 1, 100);

        GenerateRandomListNode.printListNode(l);

        GenerateRandomListNode.printListNode(s.reverseList(l));
    }
}
